package com.boge.springframework.beans.factory;

import com.boge.springframework.beans.BeansException;
import com.boge.springframework.beans.factory.config.AutowireCapableBeanFactory;
import com.boge.springframework.beans.factory.config.BeanDefinition;
import com.boge.springframework.beans.factory.config.ConfigurableBeanFactory;

/**
 * 综合性接口，继承了 单例注册接口、处理 BeanPostProcessors的Bean、以及注册BeanPostProcessors接口
 *
 * 额外添加了 1. 获取BeanDefinition信息
 *          2. 创建所有bean入口。
 */
public interface ConfigurableListableBeanFactory extends ListableBeanFactory, AutowireCapableBeanFactory, ConfigurableBeanFactory {

    BeanDefinition getBeanDefinition(String beanName) throws BeansException;

    void preInstantiateSingletons() throws BeansException;

}
